package indi.kider.server.bill.service;

import indi.kider.common.model.bill.MeterReadingQuery;
import indi.kider.common.model.bill.Reading;
import indi.kider.common.model.meter.MeterReading;
import pers.vankid.common.utils.page.PageRequest;
import pers.vankid.common.utils.page.PageResponse;

import java.util.List;

/**
 * Created by shixj on 2018/5/4.
 */
public interface ReadingService {
    /**
     * 人工抄表
     * （需指定归属）
     * 更新任务水电读数
     * @param meterReadingQuery
     * @return
     */
    MeterReading mannalRead(MeterReadingQuery meterReadingQuery)throws Exception;

    /**
     * 根据抄表读数 保存读数记录并更新任务
     * @param clientReading
     * @param rentId
     */
    void saveReadingByClient(MeterReading clientReading,Long rentId);
    /**
     * 水电入库(自动入库)
     *
     * @param reading
     * @return
     */
    Reading add(Reading reading);

    /**
     * 批量入库
     * 水电入库(自动入库)
     *
     * @param readings
     * @return
     */
    void batchAdd(List<Reading> readings);

    /**
     * 查询读数流水信息
     *
     * @param request
     * @return
     */
    PageResponse<Reading> query(PageRequest<Reading> request);

    Reading queryById(Long id);
}
